<%@page import="org.ccpp.portal.coleciones.Propiedades"%>
<%@page import="java.util.Properties"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.LinkedList"%>
<%@page import="org.ccpp.portal.sql.SQLBasico"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<jsp:include page="include_head.jsp"/>
<title>Cooperativas de programadores</title>
</head>
<body class="inicio">
<%
SQLBasico sqlBasico=new SQLBasico();
sqlBasico.conectar();
%>

<jsp:include page="include_publico_title.jsp"/>
<div class='bg_logo' align="center">
	<jsp:include page="include_publico_barra_menu.jsp"/>
	<table class='table_document' width='90%'>
		<tr height="800px">
			<td class='td_border_left'></td>
			<td class='td_document'>
				<br/>
				<table width="100%" height="100%">
					<tr valign="top">
						<td width='20%'> 
						</td>
						<td class='td_center'>
							<img align='left' src='resources/i_h3_logo.png'/>
							<h3>¿Qué es "Cooperativas de Programadores"?</h3>
							<p>
								Cooperativas de programadores es una iniciativa que pretende facilitar
								el trabajo a los desarrolladores y clientes del software. Actualmente,
								el mercado del software tiene multitud de problemas: subcontratación
								abusiva, rotación laboral, costes ocultos y tiempos en formación, alto
								riesgo, retrasos en los plazos, errores por encima de los deseados o
								incertidumbre en el resultado final.
							</p>
							<br/>
							<h3>¿Que problemas existen actualmente en el mercado del desarrollo del software?</h3>
							<p>
								Para que exista una solución, debe existir un problema previo.
								Actualmente el software que se desarrolla tiene unos niveles de
								calidad bajos por diferentes motivos de fondo:
								<ul>
									<li><b>Costes ocultos en formación:</b> Estamos en un sector que cambia
									constantemente y evoluciona de manera exponencial. Tal es así que
									personas con mucha experiencia pueden quedar desfasadas si no se
									renuevan constantemente. Del mismo modo, al existir multitud de
									metodologías, personas que han recibido una formación académica o
									universitaria, estas son recibidas de manera genérica. Por ello,
									cuando un programador entra en un proyecto nuevo se requiere una media
									de 6 meses de formación para adaptarse a este proyecto.
									</li>
									<li>
										<b>Desconocimiento de lo contratado:</b> Existe también otra problemática
										que tiene que ver con la contratación del servicio. Este problema es
										el desconocimiento del ambito del proyecto, de las espectativas
										generadas en el cliente, del conocimiento que dispone el programador o
										de que tareas solicitadas son o no viables. Este problema problema
										provoca fustración tanto en los programadores porque se les pide
										realizar tareas imposibles que muchas veces se resuelven a base de
										horas extras impagadas y también en los clientes que ven como las
										espectativas que tenían en el proyecto no se cumplen o dan fallos por
										el agotamiento o incluso rotación de los programadores.
									</li>
									<li>
										<b>Alto riesgo = altos ingresos para inversionistas.</b> Un tercer problema
										anexo a los dos anteriores es que debido al riesgo que es desarrollar
										software por los dos problemas anteriores, el inversor espera recibir
										más beneficio por su inversión. Por ello, la única forma de obtener
										más beneficio es buscar personal lo más barato posible, ya sea en
										prácticas, contratos de categoria baja o bién explotando a los
										trabajadores con horas extras impagadas para así obtener un margen de
										beneficio adecuado y ser competitivo en el precio a la vez. Por ello
										ese riesgo lo acaba pagando en parte los programadores por una
										explotación insalubre y otras por el cliente teniendo un software de
										calidad baja o retrasos en los plazos.
									</li>
								</ul>
							</p>
							<br/>						
							<h3>¿Qué soluciones proponemos?</h3>
							<p>
								Para un software de calidad debemos proteger y respaldar lo más
								importante: el factor humano. Para ello se debe facilitar una labor de
								estandarización y protocolos para que tanto trabajadores como clientes
								puedan entenderse facilmente y así conseguir un software que cumpla
								las espectativas del cliente y sea adecuadamente remunerado el
								trabajador en proporción a unas horas correctas.
								<ul>
									<li>
										<b>Autonomía de los profesionales:</b>
										La base del desarrollo de software son los propios programadores. De
										estos depende gran parte del trabajo productivo. Es muy importante que
										estos desarrolladores se sientan a gusto con su trabajo y sientan
										cierta autonomía en su carrera profesional. Así lo entienden muchas
										empresas en EEUU o empresas como Google que ofrecen de un 20% del
										tiempo de los empleados para desarrollar proyectos propios. Nosotros
										proponemos que el programador pueda decidir en que se quiere
										especializar para dedicarse a tipo de proyectos adecuados a sus gustos
										o en que lenguajes, frameworks o herramientas quiere trabajar. Para
										ello dispondremos de normativas de especialización a estos tipos de
										proyectos. Del mismo modo, si no existiese una normativa adecuada a
										sus necesidades este podría proponer y redactar nuevas normativas que
										se aceptarán si cumplen los criterios de estabilidad y calidad para
										trabajar.
									</li>
									<li>
										<b>Valorización y reconocimiento al trabajo productivo:</b> Tener software de
										calidad implica tener programadores profesionales y felices de ejercer
										su trabajo, y como tal, se les debe reconocer su labor tanto en merito
										como economicamente. Por ello, se propone evitar capas intermedias que
										esperan recibir dinero unicamente por el riesgo realizado o por
										promoción de un producto. En conclusión, este proyecto está enfocado
										para personas freelances, autónomos, cooperativas y pequeñas empresas
										cuya especialización es el desarrollo de software y no existen capas
										intermedias que realizan otras tareas de promoción o gestión.
									</li>
									<li>
										<b>Normalización del modo de trabajo:</b> Existen multitud de formas de
										desarrollar el software al igual que hay multitud de tipo de software
										para desarrollar. Esto provoca que los programadores tengamos que
										estar siempre formandonos y muchas veces en herramientas que solo
										utilizaremos una vez. Por ello, es un derroche de energía y la
										eficiencia del aprovechamiento de lo aprendido es nulo. En este portal
										se propone crear diferentes metodologías para cada tipo de proyecto
										que estarán claramente identificadas y serán legibles tanto para el
										programador (en la parte técnica) como para el cliente (en el ambito
										del proyecto). Esta calidad también aportará ventajas al cliente que
										verá un producto desarrollado por prácticas probadas y eficientes por
										multitud de programadores y al mismo modo podrá solicitar flexibilizar
										la carga de trabajo contratando más o menos programadores que conozcan
										la misma metodología y sin necesidad de un coste oculto en formación.
									</li>
									<li>
										<b>Formación a asesoramiento focalizado a un objetivo:</b> Para solventar el
										problema de la formación genérica y no especializada, existe también
										un programa de formación de personas estudiantes que podrán participar
										en proyectos supervisados por programadores con más experiencia en una
										metodología concreta.
									</li>
									<li>
										<b>I+D:</b> Por último, es importante crear metodologías nuevas para
										renovarse a nuevas herramientas o técnicas. Para ello existirá una
										parte de proceso de aprobación de metodologías en base a resultados.
										Asimismo se dispondrá de un programa de desarrollo propio mediante
										microinversiones en el que varios programadores pueden unirse para
										crear productos propios.
									</li>
									<li>
										<b>Retrospectiva de los resultados:</b> Finalmente, cuando se realice una
										contratación de servicio tanto el cliente como el programador podrá
										evaluar si ha estado satisfecho con el resultado de ese trabajo y la
										cooperación y comunicación entre ambas partes. Con ello se valora como
										de eficiente es un programador, como de comprensivo o comunicativo es
										un cliente y que tal eficiente es una metodología. 							
									</li>
								</ul>
							</p>
						</td>

						<td width='20%' class='td_avisos' align="center">
							<h3>Noticias</h3>
							<%
								try{
									LinkedList<Propiedades> list=sqlBasico.ejecutarConsulta("no_not_noticias","","not_fecha_publicacion desc",10);
									Iterator<Propiedades> it1=list.iterator();
									boolean elementos=false;
									while(it1.hasNext()){
										Propiedades p=it1.next();
										out.println("<h4>" + p.getControlXSS("no_not_descripcion", 20) + "<h4>");
										elementos=true;
									}
									if (!elementos){
										out.println("<h4>No hay noticias<h4>");
									}
								}catch(Exception e){
									e.printStackTrace();
									out.println("Noticias no disponibles");
								}
							%>
							<br/>
							<br/>
							<h3>Mensajes</h3>
							<%
								try{
									LinkedList<Propiedades> list=sqlBasico.ejecutarConsulta("fo_hil_hilos","","hil_fecha_publicacion desc",10);
									Iterator<Propiedades> it1=list.iterator();
									boolean elementos=false;
									while(it1.hasNext()){
										Propiedades p=it1.next();
										out.println("<h4>" + p.getControlXSS("hi_descripcion", 20) + "<h4>");
										elementos=true;
									}
									if (!elementos){
										out.println("<h4>No hay hilos<h4>");
									}
								}catch(Exception e){
									e.printStackTrace();
									out.println("Hilos no disponibles");
								}
							%>
							<br/>
							<br/>
							<h3>Proyectos</h3>
							<%
								try{
									LinkedList<Propiedades> list=sqlBasico.ejecutarConsulta("pr_pro_proyectos","","pro_fecha_publicacion desc",10);
									Iterator<Propiedades> it1=list.iterator();
									boolean elementos=false;
									while(it1.hasNext()){
										Propiedades p=it1.next();
										out.println("<h4>" + p.getControlXSS("pro_descripcion", 20) + "<h4>");
										elementos=true;
									}
									if (!elementos){
										out.println("<h4>No hay proyectos<h4>");
									}
								}catch(Exception e){
									e.printStackTrace();
									out.println("Proyectos no disponibles");
								}
							%>
							<br/>
						</td>
					</tr>
				</table>
			</td>
			<td class='td_border_rigth'></td>
		</tr>
	</table>
</div>
<jsp:include page="include_publico_pie.jsp"/>
<br/>
<%
sqlBasico.desconectar();
%>
</body> 
</html>